import axios from 'axios';
import dotenv from 'dotenv';
import { getTokenFromStore } from '../../auth/tokenStore.js';
import { getMyProject } from '../../auth/projectStore.js';

// 加载 .env 文件
dotenv.config();

// 检查 IOTDAEndpoint 是否存在
if (!process.env.IOTDAEndpoint) {
  throw new Error('IOTDAEndpoint is not defined in .env file');
}

// 获取设备的函数
async function getDevices() {
  try {
    // 获取缓存的 Token
    const token = getTokenFromStore();
    if (!token) {
      throw new Error('No valid token found');
    }

    // 获取项目 ID
    const projectId = getMyProject();
    if (!projectId) {
      throw new Error('No valid project ID found');
    }

    // 定义请求的 URL
    const url = `https://${process.env.IOTDAEndpoint}/v5/iot/${projectId}/devices`;

    // 发送 GET 请求
    const response = await axios.get(url, {
      headers: {
        'X-Auth-Token': token,
        'Content-Type': 'application/json;charset=utf-8'
      }
    });

    // 返回设备数据
    return response.data;
  } catch (error) {
    console.error('Error fetching devices:', error.response ? error.response.data : error.message);
    throw error;
  }
}

// 导出 getDevices 函数
export { getDevices };